package ListNode;

import java.io.File;
import java.util.*;

public class FileUtils {
    public void deleteFile(String path){
        File file=new File(path);
        if(file.isDirectory()){
            File[] files=file.listFiles();
            for(File f:files){
                if(f.isDirectory()){
                    deleteFile(f.getPath());
                }else{
                    f.delete();
                }
            }
        }
    }

    public void mkdirFile(String path){
        File file=new File(path);
        if(file.exists()){
            System.out.println("文件已存在！");
            Scanner sc=new Scanner(System.in);
            int temp=sc.nextInt();
            if(temp==1){
            }
        }
    }

    public synchronized void  getName(){
        int a=0;
    }

    public List<Integer> reverList(List<Integer> list){
         list.sort(new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
               return o1>o2?o1:o2;
            }
        });
         return list;
    }

    /**
     *
     * @param a
     */
    public void mostNum(int[] a){
        int[][] temp=new int[a.length][2];
        for(int i=0;i<a.length;i++){
            temp[i][0]=a[i];
        }
        System.out.println("测试"+" "+temp[0][0]);
        for(int i=0;i<a.length;i++){
            for(int j=0;j<temp[i].length;j++){
                System.out.print(temp[i][j]+" ");

            }
            System.out.println();
        }
        for(int i=0;i<a.length;i++){
            for(int j=0;j<a.length;j++){
                if(a[i]==temp[j][0]){
                    temp[j][1]++;
                }
            }
        }

        for(int i=0;i<a.length;i++){
            for(int j=0;j<temp[i].length;j++){
                System.out.print(temp[i][j]+" ");

            }
            System.out.println();
        }
        //去除重复得数据
        for(int i=0;i<a.length;i++){
            for(int j=i+1;j<a.length-1;j++){
                if(temp[i][0]==temp[j][0]){
                    temp[j][0]=-1;
                    temp[j][1]=-1;
                }
            }
        }
        for(int i=0;i<a.length;i++){
            for(int j=0;j<temp[i].length;j++){
                System.out.print(temp[i][j]+" ");

            }
            System.out.println();
        }
        int length=0;
        for(int i=0;i<a.length;i++){
            if(temp[i][0]!=-1){
                length++;
            }
        }
        int[][] res=new int[length][2];
        for(int i=0;i<res.length;){
            for(int j=i;j<temp.length;j++){
                if(temp[j][0]!=-1){
                    res[i][0]=temp[j][0];
                    res[i][1]=temp[j][1];
                    i++;
                }
            }
        }
        System.out.println("输出结果");
        printArray(res);
       //按照出现次数多少排序
        sortArray(res);
        System.out.println("输出结果");
        printArray(res);

    }

    public void printArray(int[][] temp){
        for(int i=0;i<temp.length;i++){
            for(int j=0;j<temp[i].length;j++){
                System.out.print(temp[i][j]+" ");

            }
            System.out.println();
        }
    }

    public void sortArray(int[][] array){
        for(int i=0;i<array.length;i++){
            for(int j=i+1;j<array.length;j++){
                if(array[j][1]<array[i][1]){
                    int temp=array[i][0];
                    int temp2=array[i][1];
                    int temp3=array[j][0];
                    int temp4=array[j][1];
                    array[i][0]=temp3;
                    array[i][1]=temp4;
                    array[j][0]=temp;
                    array[j][1]=temp2;
                }
            }
        }
    }

    public ArrayList<Integer> GetLeastNumbers_Solution(int [] input, int k) {
        if(k>input.length){
            return null;
        }
        Arrays.sort(input);
        ArrayList<Integer> list=new ArrayList<>();
        for(int i=0;i<k;i++){
            list.add(input[i]);
        }
        return list;
    }

    public int getIndex(int a[]){

        return 0;
    }

    public static void main(String[] args){
//        int[] a={1,1,1,2,2,3};
//        new FileUtils().mostNum(a);
      /*  int[] a={4,5,1,6,2,7,3,8};
        Arrays.copyOf(a,5);

        new FileUtils().GetLeastNumbers_Solution(a,10);*/

     /* String str=Arrays.toString(a);
      str.replaceAll(",","");
      str.replaceAll("[]","");
      System.out.print(str);
      int temp=str.lastIndexOf('1',5);
      int temp1=str.lastIndexOf("1",3);
      int temp2=str.indexOf("1");
      System.out.print(temp+" "+temp1+" "+temp2);
      Arrays.*/
        int[] a={2,3,4,5};
        ArrayList<Integer> list=new ArrayList<>();
       /* for(int i=0;i<a.length;i++){
         sb.append(a[i]);
        }
        String str=sb.toString();*/
       int res=0;
        for(int i=0;i<a.length-1;i++){

           if(list.size()==0){
               list.add(a[i]);
           }
            if(!list.contains(a[i+1])){
              list.add(a[i+1]);
            }else{
                if(res<list.size()){
                    res=list.size();
                }
                list.removeAll(list);
            }
        }
        if(list.size()>0){
            res=list.size();
        }

        System.out.println(res+" "+list.toString());


    }
}
